/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package net.worldscale.xp.wslib.im.jabber;

import org.w3c.dom.Element;

/**
 *
 * @author Kun
 */
public abstract class JabberRosterModel {

    public abstract Element getRoster();

    public abstract void setRoster(Element roster);

    public abstract Contact getContact(JabberID jid);

    public abstract Contact[] getContacts();

    public abstract Contact[] getContactsInGroup(String groupName);

    public abstract ContactGroup getGroup(String groupName);

    public abstract ContactGroup[] getGroups();

    public static abstract class ContactGroup {

        public abstract String getName();

        public abstract JabberID[] getContactIDs();

        public abstract void setOpen(boolean open);

        public abstract boolean isOpen();
    }

    public static abstract class Contact {

        public abstract JabberID getJID();

        public abstract String getName();

        public abstract String getSubscription();

        public abstract String[] getOwnerGroupNames();

        public abstract String[] getResources();
    }
}
